<?php
/**
 * Modelo CRUD de avisos
 * @author Thiago Bezerra @ PC4 Team
 */
class PC4_Crud_Newsletter_Aviso extends PC4_Crud_Abstrato_Rastreado {
	
	/**
	 * Construtor
	 */
	function __construct($tabela = 'avisos') {
		parent::__construct($tabela);
	}

/*______________________________________________________________________________________________*/	
	/**
	 * 
	 * @param $campos(nome/valor)
	 * @return devolve um array de erros(nomeCampo/erro) para cada campo que não passou na validação
	 */
	function valida($campos, $id=0) {
		$erros = array();
		$onde = array(
			"id_clientes" => $campos['id_clientes'],
			"descricao" => $campos['descricao'],
			"ativo" => 1,
			"id !=" => $id
		);		
		$resultado = $this->db->get_where($this->tabela, $onde);
		if($resultado->num_rows() > 0){
			$erros[] = "Já existe um registro cadastrado com as mesmas características.";
		}
		
		return $erros;
	}
	
/*______________________________________________________________________________________________*/
	/**
	 * Altera o modo como os registros aparecerão para o usuário
	 * @param object $registro
	 * @return object de registros alterados
	 */
	function trataRegistro($registro) {
		$registro->id_cliente = $registro->id_cliente;
		$registro->titulo = trim($registro->titulo);
		$registro->descricao = trim($registro->descricao);
		
		return $registro;
	}
	
/*______________________________________________________________________________________________*/	
	/**
	 * Executa uma consulta retornando os dados do cliente
	 * @param int $pagina
	 * @param int $registros
	 */
	function lista($pagina = 1, $registros = 20) {
		$offset = ($pagina - 1) * $registros; 
		
		//BUSCA DOS AVISOS EXCLUINDO
		$this->db->select("a.id, a.titulo, a.descricao, a.ativo, c.nome_fantasia");
		$this->db->join("clientes c", "c.id = a.id_clientes", "inner");
		
		$rs = parent::lista($pagina, $registros);
		return $rs;
	}
	
/*______________________________________________________________________________________________*/
	/**
	 * Apaga todos os avisos de um cliente quando este é apagado
	 * @param int $id
	 * @return boolean
	 */
	function apagaPorCliente($id){
		$this->db->delete($this->tabela, array('id_clientes' => $id));
		return true;
	}
}
?>